home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / AlexNeXTSTEPSource / Source / Chapter6_Events / ControlDemo / Control_2.m < prev    next >
Text File  |  1995-06-12  |  2KB  |  71 lines

  1. #import <appkit/appkit.h>
  2.  
  3. // a minimal program to demonstrate how
  4. // to add controls to a window
  5.  
  6. main()
  7. {
  8.     // create an application object
  9.     // to establish connection to
  10.     // Window Server
  11.     id NXApp = [Application new];
  12.     id theWindow;
  13.     id theMenu;
  14.     id theButton;
  15.     id theSlider;
  16.     NXRect theRect;
  17.  
  18.     // create a window that's at 125, 125
  19.     // and is 200 by 300 pixels
  20.     NXSetRect(&theRect, 125, 125, 200, 300);
  21.     theWindow = [ [Window alloc]
  22.         initContent:&theRect
  23.         style: NX_TITLEDSTYLE
  24.         backing:NX_BUFFERED
  25.         buttonMask:NX_MINIATURIZEBUTTONMASK
  26.         defer:YES];
  27.  
  28.     // create the menu
  29.     theMenu = [ [Menu alloc]
  30.         initTitle: [NXApp appName] ];
  31.     // create the menu option
  32.     [theMenu addItem:"Quit"
  33.         action:@selector(terminate:)
  34.         keyEquivalent:'q'];
  35.  
  36.     // resize menu to accomodate menu option
  37.     [theMenu sizeToFit];
  38.     [NXApp setMainMenu:theMenu];
  39.  
  40.     // create a button that's 80 by 20
  41.     NXSetRect(&theRect, 0, 0, 80, 20);
  42.     theButton = [ [Button alloc]
  43.         initFrame:&theRect];
  44.     // set the title for the button
  45.     [theButton setTitle:"Press Here"];
  46.     // since the button is a view, we need
  47.     // to install it as the subview of the
  48.     // window's contentview or else it
  49.     // won't draw
  50.     [ [theWindow contentView]
  51.         addSubview: theButton];
  52.  
  53.     // create a horizontal slider 100 x 15
  54.     NXSetRect(&theRect, 0, 100, 100, 15);
  55.     theSlider = [ [Slider alloc]
  56.         initFrame:&theRect];
  57.     // set the min value to 0.0
  58.     [theSlider setMinValue:0.0];
  59.     // set the max value to 10.0
  60.     [theSlider setMaxValue:10.0];
  61.     [ [theWindow contentView]
  62.         addSubview:theSlider];
  63.  
  64.     // send the window to the front
  65.     // and display it
  66.     [theWindow makeKeyAndOrderFront:nil];
  67.  
  68.     // go into event loop to wait for events
  69.     [NXApp run];
  70. }
  71.